/*
 * @lc app=leetcode.cn id=49 lang=java
 *
 * [49] 字母异位词分组
 */

// @lc code=start

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {

        List<List<String>> ans = new ArrayList<List<String>>();
        if (strs.length == 0) {
            return ans;
        }
        Map<String, List<String>> map = new HashMap<>();
        

        for(String str : strs){
            char[] strArr = str.toCharArray();
            Arrays.sort(strArr);
            String newstr = new String(strArr);
            if(map.containsKey(newstr)){
                List<String> tempList = map.get(newstr);
                tempList.add(str);
            } else {
                List<String> tempList = new ArrayList<>();
                tempList.add(str);
                map.put(newstr, tempList);
                ans.add(tempList);
            }
        }
        return ans;
    }
}
// @lc code=end

